package com.ajk.shop.service;

import java.util.List;

import com.ajk.shop.model.Category;
import com.ajk.shop.model.CommentLabel;
import com.ajk.shop.model.Goods;
import com.ajk.shop.model.GoodsCategory;
import com.ajk.shop.model.GoodsImage;
import com.ajk.shop.model.GoodsSortConfig;
import com.ajk.shop.model.PostageConfig;
import com.ajk.shop.model.SystemCity;
import com.ajk.shop.model.request.GoodsCommentReq;
import com.ajk.shop.model.request.GoodsReq;
import com.ajk.shop.model.response.CategoryRes;
import com.ajk.shop.model.response.GoodsCommentRes;
import com.ajk.shop.model.response.GoodsRes;
import com.ajk.shop.model.response.MarketingActivityRes;


/** 
 * @author 作者 : chenxuan
 * @version 创建时间：2015年12月29日 下午4:13:46 
 * 类说明 
 */
public interface GoodsService {
	
	/**
	 * 减库存
	 * @param goodsId
	 * @param num
	 */
	public void subtractStock(Integer goodsId,Integer num);

	/**
	 * 增加库存
	 * @param goodsId
	 * @param num
	 */
	public void increaseStock(Integer goodsId,Integer num);
	
	/**
	 * 评价商品
	 * @param orderCommentReq
	 * @return
	 */
	public GoodsCommentReq addGoodsComment(GoodsCommentReq goodsCommentReq);
	
	/**
	 * 首页商品列表
	 * @param goodReq
	 * @return
	 */
	public List<CategoryRes> getHomeList(GoodsReq goodReq);
	/**
	 * 首页Banner列表
	 * @param goodReq
	 * @return
	 */
	public List<CategoryRes> getBannerList(GoodsReq goodReq);
	/**
	 * 商品详情
	 * @param goodReq
	 * @return
	 */
	public GoodsRes goodsDetail(GoodsReq goodReq);
	
	/**
	 * 商品详情
	 * @param goodReq
	 * @return
	 */
	public GoodsRes goodsDetailById(Integer goodsId);
	
	/**
	 * 获取所有地区信息
	 * @return
	 */
	public List<SystemCity> getAllRegion();
	/**
	 * 商品分类列表
	 * @return
	 */
	public List<CategoryRes> categoryList();
	/**
	 * 商品排序列表
	 * @return
	 */
	public List<GoodsSortConfig> sortList();
	/**
	 * 商品列表
	 * @param goodsReq
	 * @return
	 */
	public List<GoodsRes> goodsList(GoodsReq goodsReq);
	
	/**
	 * 商品总数
	 * @param goodsReq
	 * @return
	 */
	public Integer goodsListCount(GoodsReq goodsReq);
	/**
	 * 活动商品列表
	 * @param goodsReq
	 * @return
	 */
	public MarketingActivityRes marketingActivityGoodsList(GoodsReq goodsReq);
	
	/**
	 * 评论 标签 列表
	 * @return
	 */
	public List<CommentLabel> commentLabelList();
	
	/**
	 * 商品评价列表
	 * @param orderCommentReq
	 * @return
	 */
	public List<GoodsCommentRes> goodsCommentList(GoodsCommentReq goodsCommentReq);
	/**
	 * 获取邮费
	 * @param provinceId
	 * @return
	 */
	public PostageConfig getPostageConfigByProvinceId(Integer provinceId);
	/**
	 * 管理平台商品列表
	 * @param goodsReq
	 * @return
	 */
	public List<GoodsRes> managerList(GoodsReq goodsReq);
	/**
	 * 添加分类
	 * @param category
	 */
	public void categoryAdd(Category category);
	
	/**
	 * 更新分类
	 * @param category
	 */
	public void categoryUpdate(Category category);
	/**
	 * 删除分类
	 * @param category
	 */
	public void categoryDelete(Category category);
	/**
	 * 设置商品分类在首页展示
	 * @param category
	 */
	public void categoryHomeView(Category category);
	/**
	 * 设置商品分类在banner位展示
	 * @param category
	 */
	public void categoryBannerView(Category category);
	
	/**
 	*新增商品
 	*/
 	public Integer insertGoods(Goods domain);
 
 	
 	/**
 	*更新商品
 	*/
 	public Integer updateGoods(Goods domain);
	
 	/**
 	*新增商品图片 
 	*/
 	public Integer insertGoodsImage(GoodsImage domain);
 
 	
 	/**
 	*更新商品图片 
 	*/
 	public Integer updateGoodsImage(GoodsImage domain);
 	
 	public Integer insertGoodsCategory(GoodsCategory domain);
 	
 	public Integer deleteGoodsCategory(Integer id);
 	
 	public List<GoodsCategory> findGoodsCategoryByGoodsId(Integer goodsId);
 	
}
